package com.briup.corejava.day12;

import com.briup.corejava.day10.pojo.Student;

import java.util.HashSet;
import java.util.Set;

/**
 * set集合：无序（存入内存的顺序和插入的顺序不一致）、不可重复、没有下标
 * HashSet：哈希表实现的，操作都是以hash值为指标
 */
public class Test2 {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add(null);
        set.add(null);
        set.add("tom");
        set.add("jerry");
        set.add("bob");
        set.add("tom");
        System.out.println(set);
        // set集合如何判断数据是重复的呢？
        // 通过hashCode方法和equals方法进行判断
        // 如果想用set保存自己写的类型的对象
        // 必须重写hashCode和equals方法
        // 判断方式：
        // 1、先判断hashCode是否相同，如果不同，直接插入
        // 2、如果hashCode相同，再进行equals判断，返回false是插入
        Set<Student> studentSet = new HashSet<>();
        studentSet.add(new Student("张三",20));
        studentSet.add(new Student("张三",20));
        studentSet.add(new Student("张三",20));
        studentSet.add(new Student("张三",20));
        System.out.println(studentSet);
    }
}
